home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / nvlexp / readme < prev   
Text File  |  1992-02-02  |  5KB  |  91 lines

  1. README for Example.EXE          02/02/92
  2. Copyright 1992 by L.J. Johnson
  3. All rights reserved     
  4.  
  5. This code is NOT released into the public domain.  However, I
  6. have no desire for any reimbursement.  If you find the code
  7. useful, a simple "thanks" in the printed documentation is quite
  8. sufficient.
  9.  
  10. =================================================================
  11.  
  12. A couple of points about the program.  It is designed to work on
  13. Novell 3.x networks, and I have no idea if it works on Novell 2.x
  14. (I have no way to test it).  It is also designed to work with
  15. Novell DLL's versions 1.2.2.0 and above.  It you want to try it
  16. with earlier versions, you will have to modify the code in
  17. MainForm so it will not abort the program.
  18.  
  19. The emphasis on this example program is for people working with
  20. multiple servers.  If you only have one server on your network,
  21. then a good portion of the code will not be of much help to you. 
  22. The MapDrive section will still work, however.
  23.  
  24. I do not have much experience with Novell programming, but based
  25. upon knowledge of other systems, I would suggest taking their
  26. strongly-worded warning to heart.  It is very good defensive
  27. programming to always check the versions of the DLL's you are
  28. going to use.  It is always much better to abort the program with
  29. a good error message than to continue and possibly crash very
  30. inelegantly.
  31.  
  32. One very confusing point (at least to me) was the functions
  33. AttachToFileServer and LoginToFileServer.  In this context,
  34. "Attach" and "Login" do not mean what they do with the Novell DOS
  35. utilities LOGIN and ATTACH.  Both of these DOS utilities do, from
  36. the viewpoint of the Novell DLL's, two separate tasks --
  37. AttachToFileServer and LoginToFileServer.  AttachToFileServer
  38. attaches the workstation to a fileserver, and gets a ConnectionID
  39. in return.  The LoginToFileServer completes the task by passing
  40. the user's name, type, and password to the server.
  41.  
  42. There are 3 connection priorities for workstation requests:
  43. preferred server, default server, and primary server.  When you
  44. set a preferred server from within your program, ALL requests are
  45. routed to that server.  If you are on one server, attach to
  46. another server, but try to Login to that server without setting
  47. the preferred server, you will re-login to your current server
  48. (almost guaranteed to produce a spectacular crash if that is your
  49. primary server).  If there is no preferred server, then requests
  50. are sent to the default server -- ie, the one implied by the
  51. default drive.  If the default drive is a local drive, then the
  52. lowest priority (primary server) takes effect.  The primary
  53. server is the one you originally did the LOGIN to (not any
  54. servers you have attached to later).  Obviously, the safest
  55. course is to always set the preferred server before making any
  56. server requests.  Then you will always be sure where the messages
  57. are going.
  58.  
  59. Another confusing point is the Connection ID and the Connection
  60. Number.  It is all too easy when writing the program to
  61. inadvertently substitute one for the other, and create some
  62. really nifty bugs.  The Connection ID is one of the 8 possible
  63. servers to which a workstation can be attached.  The Connection
  64. Number, on the other hand, is a unique number the server gives to
  65. the workstation gives to the workstation when the connection is
  66. made.
  67.  
  68. Notice that there are no labels in any of the forms.  It makes it
  69. slightly harder on the programmer at design time, but it saves
  70. enough of your precious system resources to make this small
  71. sacrifice worthwhile.  
  72.  
  73. Notice also that I set up 5 global variables in my Global file. 
  74. I have argued with structured programming gurus over the last few
  75. years about issues like this, and I have concluded that while I
  76. agree with most of the concepts of structured programming, I
  77. reserve the right to take exceptions where I feel that they are
  78. needed.  I also sometimes exit a sub in more than one place, if I
  79. feel that it is more logical and straightforward (and readable)
  80. than the alternative control structures.  I even use GOTOs
  81. sometimes (although not in this particular program) when I feel
  82. it makes sense to do so, and I do not apologize for any of these
  83. structured programming "errors".
  84.  
  85. MapDrive is used in this program to map regular drives.  You can
  86. also use it to make search drives.
  87.  
  88. I hope this code makes someone else's life a little easier, and
  89. saves some of the trial and tribulation I experienced when trying
  90. to get it to work in my first program.
  91.